Method and apparatus for data processing

ABSTRACT

The invention relates to data processing methods and systems including: a method of database replication in which information strings are assigned to serialization groups for processing; a method of memory management in which data is read from a storage space area whilst no data is written to it; a method of replicating a database in which a dynamic table is created to provided processing information for database members; and/or a method of replicating a database wherein tasks are allocated to program components without program components interacting.

This is the U.S. National Stage of International ApplicationPCT/NZ01/00206, filed Oct. 1, 2001, which in turn claims priority to NewZealand Patent Application No. 507386, filed Oct. 9, 2000, the entirecontents of both applications are incorporated herein by reference intheir entireties.

FIELD OF THE INVENTION

The present invention relates to a method and apparatus for dataprocessing. More particularly, but not exclusively, the inventionrelates to a method and apparatus for database replication.

BACKGROUND OF THE INVENTION

In a number of data processing applications fragments of data sent froma source system must be processed into a required data format on atarget system.

In many instances it is desired to replicate a database on a targetcomputer system from a database on a source system. This process mayinvolve sending journal entries from the source database to allowupdating of the target database. Databases may consist of one or morelibrary, each of which contains one or more files, each file having oneor more members. Each member consists of a table having one or morerows. A journal entry may contain an identifier of the library; file;file member and a row of changed data for the file member. This journalentry may be used by the target computer system to update its database.

It is important that database entries from a given table are updated inthe correct sequence and that inter-related members are updated in thecorrect sequence. To ensure that journal entries are properly processeda receive process of the target computer system may compare an objectname (library/file/member) with a database of objects stored on thetarget computer system. When a matching object is located the processinginformation associated with that object may be used to process thejournal entry.

The traditional approach has been to transfer journal entries, storethem and replicate the database utilising a single engine. This approachis slow and complex.

It would be desirable for a database replication system to meet thefollowing requirements:

-   -   1. Ensure that journal entries are serialised by database member        (at a minimum), and by any user specified groupings.    -   2. Support an extremely large number of database apply processes        so that database I/O (input/output) can be easily managed.    -   3. Process journal entries in a way which minimises the amount        of system I/O (e.g. paging) between the time the entries are        obtained from the journal and the time it is applied to the        replica database.    -   4. The functions support any type of data packets, not just        journal entries, to allow for future extensions to other types        of replication (e.g. object, stream files etc).    -   5. The system hides the complexity of the memory management        functions from other components.

It is an object of the present invention to provide a method andapparatus for information replication which meets these requirements orto at least provide the public with a useful choice.

DISCLOSURE OF THE INVENTION

According to a first aspect of the invention there is provided a methodof replicating information from a source system at a target systemcomprising the steps of:

-   -   i) receiving information strings from the source system; and    -   ii) assigning the information strings to serialisation groups        for processing such that inter-related information strings are        processed in the same serialisation group.

The information strings may be journal entries from a source databasewhich may be allocated to serialisation groups so that journal entriesof the same type, or which are related to other journal entries, areprocessed in the same serialisation group.

According to a further aspect of the invention there is provided amethod of managing memory space in a data transfer operation comprisingthe steps of:

-   -   i) defining a plurality of storage space areas;    -   ii) writing data to a first storage space area; and    -   iii) reading data from the first storage space area whilst no        data is written to the first storage space area.

The method may enable multiple simultaneous reads from other datastorage space areas whilst information is written to only the firststorage space area.

According to a further aspect of the invention there is provided amethod of replicating a database from a source computer system at atarget computer system comprising:

-   -   i) receiving journal entries from the source computer system;    -   ii) checking the journal entries to see if an entry exists in a        dynamic index giving processing information relating to a        database member to which the journal entry relates; and    -   iii) if an entry exists in the dynamic table, processing the        journal entry according to the associated processing        information; or    -   iv) if an entry does not exist in the dynamic index, looking up        the related processing information for the database member in an        assignment database, creating an entry and storing it in the        dynamic index; and processing the journal entry according to the        processing information.

The entry in the dynamic index may provide information as to whether themember needs to be processed with other members. A journal entry may betemporarily stored before being processed according to the processinginformation.

According to a further aspect of the invention there is provided amethod of replicating a database from a source computer system to atarget computer system comprising:

-   -   i) receiving journal entries from the source computer system;        and    -   ii) allocating program components to process journal entries and        update the target database, wherein a control program allocates        tasks to program components and controls the program components        substantially without program components interacting with one        another.

Preferably the target computer system is a multi-processor computersystem.

BRIEF DESCRIPTION OF THE DRAWINGS

The invention will now be described by way of example with reference tothe accompanying drawings in which:

FIG. 1: shows a schematic diagram of a source computer system whichprovides journal entries to a target computer system.

FIG. 2: is a functional diagram illustrating the processes involved indatabase replication at a target computer system.

FIG. 3: shows the mapping of storage space within the target computersystem.

FIG. 4: shows a flow diagram illustrating the process for allocatingjournal entries to serialisation groups.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

The following description describes a database replication method wherethe source and target computer systems are IBM AS/400 computersoperating under the OS/400 operating system. It will be appreciated thatthe method is applicable to other systems with appropriate modification.

Referring to FIG. 1, source system A contains a primary database 1.Primary database 1 may contain one or more library. Each library maycontain one or more file. Each file may contain one or more members.Each member comprises a table having one or more rows. A uniquelibrary/file/member combination is referred to as an object.

When a row of any member of primary database 1 is modified a journalentry including the object name and the modified row is sent to localjournal receiver 2. Local journal receiver 2 sends the journal entry viacommunications link 3 to a remote journal receiver 4 of a targetcomputer system B. A database replication process 5 receives the journalentries and modifies the contents of replica database 6 to maintain itin conformity with primary database 1.

Referring now to FIG. 2 the process and apparatus for replicating targetdatabase 6 of the target computer system will be described. To ensureproper replication of replica database 6, database members are updatedin the replica database 6 in the same order as they are modified in theprimary database 1. To achieve this a number of serialisation groups 8are defined. Journal entries having the same object name are groupedinto a common serialisation group so that they are updated in thecorrect order. Certain database members may have relationships withother database members (joins etc) and so may be assigned to a commonserialisation group to ensure all inter-related members are updated inthe correct sequence. A serialization group may thus contain journalentries for a number of objects. The use of such serialisation groupsenables database replication to be conducted in the appropriate sequenceas well as facilitating efficient parallel processing.

Receive process 7 may either assign a received journal entry to aserialisation group, assign a journal entry to a default serialisationgroup or discard the journal entry. Serialisation group assignment isperformed based upon an assignment database (MXSGMBAS) and a temporaryOS/400 user index object. The journal entry assignment functions areprovided via an ILE service program—which allows the underlyingimplementation to be modified without recompile/bind of the callingfunctions.

The assignment database MXSGMBAS contains all objects, theirrelationship with other objects (i.e. do they need to be grouped withother objects during processing) and their required manner ofprocessing. Assignment of a journal entry to a serialisation group 8could be conducted simply by comparing the object name of each receivedjournal entry with the assignment database MXSGMBAS and assigning thejournal entry to a serialisation group based upon the associatedinformation. However, the assignment database MXSGMBAS contains manyobjects and considerable processing time is required to, perform adatabase locate operation and extract the relevant processinginformation. According to the invention a member assignment (MBIX) indextemporary object is used to store processing information for an object.This is an index of objects giving their associated serialisation groupand related processing information (including a link to their associatedcontrol structures).

Referring now to FIGS. 2 and 4 the serialisation group assignment willbe described. When a journal entry is received in step 11 receiveprocess 7 conducts a comparison in step 12 to see whether the object ispresent in the MBIX index. If so, operation proceeds to step 13 and aserialisation group number and database file index (DBFIDX) is returnedand processing continues within the assigned serialisation group.

If the object name is not stored in the MBIX index then a full objectname lookup is conducted in the MXSGMBAS database 9 in step 14. If thelookup is successful then a serialisation group is returned, a DatabaseFile Index (DBFIDX) is assigned which will point to the processinginformation stored in a dynamic array maintained by the associatedserialisation group and an entry is added to the MBIX index in step 15.Each Database File Index (DBFIDX) is created simply by incrementing anindex that is unique by serialisation group.

If a match is not achieved in step 14 then a generic name lookup isconducted in step 16. This involves a search by a library/file /*all andthen by library/*all/*all. If a generic match is achieved the full nameis added to the MBIX table in step 17 and processing continues in steps15 and 13 as before. If no match can be achieved the journal entry isdiscarded in step 18.

Accordingly, at startup, there will be no entries in the MBIX index 10.As journal entries are processed, serialisation groups and theprocessing information for objects will be added to MBIX index 10. Theserialization group and processing information may be much more rapidlyobtained from MBIX table 10 than from MXSGMBAS database 9

This method gives the following, significant, performance benefits:

-   -   1. The serialisation groups do not need to search for a member's        related processing information. They simply maintain the        processing information in a dynamic array with the Database File        Index as the means of access.    -   2. All operations relating to a particular member name may refer        to the serialisation group and Database File Index value to        uniquely identify the member (a “handle”).

Referring now to FIG. 3 the method of memory management within thetarget computer system will be described. Storage object space isdivided up into a number of storage units SU₁-SU_(N). Each storage unithas a storage unit header 20. The storage unit header 20 gives thenumber of serialisation groups which have journal entries in the storageunit. Each data segment consists of a storage entry header 21 and astorage entry 22. Storage entries are aligned on 16 byte boundaries withpadding blocks 23 filling any space between an entry and a 16 byteboundary.

Journal entries are passed on from receive process 7 for storage in astorage object space 24. The journal entries from receive process 7 arestored in storage space object 24 in blocks 22. Each journal entry 22has an associated storage entry header 21 (or handle) which containsinformation as to the displacement to the next journal entry in thestorage unit for that serialisation group and an associated DatabaseFile Index (DBFIDX) containing the processing information for the memberassociated with the journal entry. The processing information ismaintained in dynamic memory with the Database File Index as the meansof access.

In normal operation journal entries are consecutively written to onestorage unit until it is filled and then journal entries are written tothe next available storage unit. Once writing to a storage unit has beencompleted journal entries may be read from the populated storage unit.Partially filled storage units may be read out when system resources arenot being otherwise utilised (i.e. no incoming journal entries need tobe stored).

This approach means that memory locks are not required during readingand writing. During the writing process the receive process 7 hasexclusive access to write to a storage unit. No locks are requiredduring read operations and so journal entries may be simultaneously readto their associated serialisation group. The only locking required is todecrement the value held in storage unit header 20 when the last journalentry for a serialisation group is read out.

The available storage units queue (ASUQ) 25 controls the order in whichfree storage units are utilised. ASUQ 25 includes a last in first out(LIFO) buffer which stores addresses of free storage units. Journalentries of a serialisation group are read out of a storage unit until anull value is found in a storage entry header. As each storage entry 22is read out the storage unit header 20 is decremented. When all journalentries are read out completely from a storage unit the storage unitheader 20 will be decremented to zero and the storage unit number isreturned to the ASUQ and is the first storage unit re-assigned when newjournal entries must be written into storage space. In this way the mostrecently used storage units are maintained active to reduce the workingset of storage units to a minimum.

When all journal entries in a storage unit have been read and thestorage unit is released the entire address range of the storage unitmay be purged without requiring writing of data to auxiliary storage.

Referring again to FIG. 2 the manner of processing will be furtherdescribed. Control process 19 oversees the replication process andcontrols processing in the receive process 7 and within theserialisation groups 8. In this manner processing can be conductedwithin each serialisation group without regard to processing withinanother serialisation group. By having the whole process controlled byan overarching control process 19 each serialisation group can conductits processing in isolation without regard to the complexity of theoverall operation.

As each serialisation group receives journal entries for a member insequence the updating of that member in the replica database 6 issequential also. By processing linked members in a particularserialisation group processing is streamlined.

When a replica database 6 is to be made a primary database partiallyapplied commits must be removed. Firstly, the control process 19suspends receive process 7 and processing by serialisation groups 8.Control process 19 then identifies all “open” commit groups (e.g. commitIDs that have not yet received a commit or roll back journal entry).These are processed, serially, from the most recent (i.e. the commitgroup that has the most recent journal entry) to the oldest as follows:

-   i) a receive process of receive process 7 receives the commit    group's journal entries from journal receiver 26;-   ii) all entries are assigned to a “default” serialisation group;-   iii) the entries are stored in storage unit 24 in the usual manner    but are linked in reverse order (i.e. the head of the list is the    last entry in the storage unit, with links moving backward until the    first entry in the storage unit);-   iv) if a storage unit is filled before that commit group's entries    are complete, the storage unit is pushed onto LIFO queue TLQ 27    (instead of releasing it to the default serialisation group). Then a    new storage unit is allocated (as normal) and entries continue to be    stored;-   v) when the commit group's available journal entries are completely    received and stored in storage units, the storage units are    dispatched to the default serialisation groups in LIFO order. The    result being that the serialisation group receives the journal    entries in reverse order (from most recent to oldest);-   vi) the default serialisation group processes the entries as    “reverse” entries (the entries include a flag to indicate that they    are “reverse” entries). This results in all inserts being processed    as deletes, updates being removed to their prior image and deletes    being inserted etc. Only journal entries which had already been    applied (e.g. during normal processing) to the database are    processed;-   vii) the default serialisation group does not perform a commit on    the “reverse” entries until it receives the “data commit group”    journal entry. This ensures that if a failure is encountered during    the “clean-up” the database is in a known state. This enables the    “clean-up” to be restarted.

Once all of the “open” commit groups have been “removed” the controlprocess 19 suspends the other processes and the replica database isready to be used as the primary database.

This method allows rapid “clean-up” of partially applied commits whichdoes not require processing capability of the system to be utilisedunless a secondary database does in fact have to be made a primarydatabase.

The method and apparatus of the invention provide a number of advantagesas follows:

-   -   1. The allocation of storage unit blocks within a storage space        object and control of read/writes avoids the need for locks and        read/write concurrency issues.    -   2. The use of serialisation groups enables members to be updated        in a serial manner and for inter-related members to be updated        in correct chronology. Serialisation groups enable multiple        streams of journal entries to be simultaneously processed whilst        processing interrelated members together.    -   3. The use of the MBIX index greatly reduces lookup time for        each journal entry. The use of storage entry headers 21        (handles) enables the next journal entry of a serialisation        group to be located rapidly.    -   4. The use of a control process to oversee the operation of the        receive process and processing within serialisation groups        enables the sub-processes to process information efficiently        without the need to interact with other processes.    -   5. Simple handling of commits where secondary database is to be        made primary database.

Where in the foregoing description reference has been made to integersor components having known equivalents then such equivalents are hereinincorporated as if individually set forth.

Although this invention has been described by way of example it is to beappreciated that improvements and/or modifications may be made theretowithout departing from the scope or spirit of the present invention.

1. A computer-implemented method of replicating information from asource system at a target system in a database replication computingsystem performed by executing instructions on the computing system, thecomputer implemented method comprising: i) receiving information stringsfrom the source system; ii) assigning the information strings to aserialization group for processing; iii) arranging interdependentinformation strings into a specific serialization group and identifyingwhich serialization group each interdependent information stringbelongs, wherein the information strings include members that have adatabase type relationship with other members and are grouped togetherso that they are arranged to be updated in a correct sequence in thesame target system, and wherein each group of interdependent informationstrings is processed in one of a plurality of serialization groups; iv)determining if received information strings are interdependent bylooking up related processing information including a link to controlstructures for an object in the serialization group for the informationstrings from a storage module, where the related processing informationa) identifies whether the information strings are to be processed withother information strings and b) identifies in which serialization groupinterdependent information strings are to be processed, and, if it isdetermined that the information strings are interdependent, assigningthe information strings to the identified serialization group; and v)processing the serialization groups in parallel to replicate theinformation from the source system, wherein the processing includesretrieving interdependent information strings that are assigned to thespecific serialization group, and applying all interdependentinformation strings assigned to that specific serialization group incorrect chronological order.
 2. The computer-implemented method asclaimed in claim 1 wherein the information strings are journal entriesfrom a source database.
 3. The computer-implemented method as claimed inclaim 2 wherein the journal entries are allocated to serializationgroups such that journal entries of the same type or related to otherjournal entries are processed in the same serialization group.
 4. Thecomputer-implemented method as claimed in claim 2 wherein, when eachdatabase object is first encountered in a processing operation atemporary index object is generated containing the serialization groupand related processing information for that database object.
 5. Thecomputer-implemented method as claimed in claim 4 wherein, if atemporary index object already exists the serialization group for adatabase object is assigned based upon the temporary index object data.6. The computer-implemented method as claimed in claim 4 wherein if atemporary index object does not exist a full object name look up of anassignment database is conducted, the serialization group is obtainedfrom the assignment database and a temporary index object is generated.7. The computer-implemented method as claimed in claim 1 whereinprocessing information for a database object is maintained in dynamicmemory.
 8. A computer readable medium containing a computer programadapted to carry out the method of claim
 1. 9. A computer configured toreplicate information from a source device, the computer comprising: acontroller in communication with a database, the controller configuredto: receive information strings from a source device; assign theinformation strings to serialization groups for processing; arrangeinterdependent information strings into a specific serialization groupand identifying which serialization group each interdependentinformation string belongs, wherein the information strings includemembers that have a database type relationship with other members andare grouped together so that they are arranged to be updated in acorrect sequence in the same target system, and wherein each group ofinterdependent information strings is processed in one of a plurality ofserialization groups; determine if received information strings areinterdependent by looking up related processing information including alink to control structures for an object in the serialization group forthe information strings from a storage module, where the relatedprocessing information a) identifies whether the information strings areto be processed with other information strings and b) identifies inwhich serialization group interdependent information strings are to beprocessed, and, if it is determined that the information strings areinterdependent, assign the information strings to the identifiedserialization group; and process the serialization groups in parallel toreplicate the information from the source device, wherein the controlleris configured to process by retrieving interdependent informationstrings that are assigned to the specific serialization group, andapplying all interdependent information strings assigned to thatspecific serialization group in correct chronological order.
 10. Acomputer-implemented method of replicating information from a sourcesystem at a target system in a database replication computing systemperformed by executing instructions on the computing system, thecomputer-implemented method comprising: receiving information stringsidentifying information to be replicated from the source system;assigning the information strings to serialization groups forprocessing; arranging interdependent information strings into a specificserialization group and identifying which serialization group eachinterdependent information string belongs, wherein information stringshaving members that have a database type relationship with other membersare grouped together into a set to ensure the members in the same targetsystem are updated in a sequence that correctly replicates theinformation from the source system, wherein each set is processed in oneof a plurality of serialization groups such that the members within aset are processed in sequence; determining if received informationstrings are interdependent by looking up related processing informationincluding a link to control structures for an object in theserialization group for the information strings from a storage module,where the related processing information a) identifies whether theinformation strings are to be processed with other information stringsand b) identifies in which serialization group interdependentinformation strings are to be processed, and, if it is determined thatthe information strings are interdependent, assigning the informationstrings to the identified serialization group; and processing theserialization groups in parallel to replicate the information from thesource system such that members within different sets can be processedout of sequence, wherein the processing includes retrievinginterdependent information strings that are assigned to the specificserialization group, and applying all interdependent information stringsassigned to that specific serialization group in correct chronologicalorder.
 11. A computer configured to replicate information from a sourcedevice, the computer comprising: a controller in communication with adatabase, the controller configured to: receive information stringsidentifying information to be replicated from a source device; assigningthe information strings to serialization groups for processing; arrangeinterdependent information strings into a specific serialization groupand identifying which serialization group each interdependentinformation string belongs, wherein the information strings includemembers that have a database type relationship with other members andare grouped together into a set so that the members in the same targetsystem are arranged to be updated in a sequence that correctlyreplicates the information from the source system, wherein each set isprocessed in one of a plurality of serialization groups such that themembers within a set are processed in sequence; determine if receivedinformation strings are interdependent by looking up related processinginformation including a link to control structures for an object in theserialization group for the information strings from a storage module,where the related processing information a) identifies whether theinformation strings are to be processed with other information stringsand b) identifies in which serialization group interdependentinformation strings are to be processed, and, if it is determined thatthe information strings are interdependent, assign the informationstrings to the identified serialization group; and process theserialization groups in parallel to replicate the information from thesource device such that members within different sets can be processedout of sequence, wherein the controller is further configured to processby retrieving interdependent information strings that are assigned tothe specific serialization group, and applying all interdependentinformation strings assigned to that specific serialization group incorrect chronological order.
 12. A computer-implemented method ofreplicating information from a source system at a target system in adatabase replication computing system performed by executinginstructions on the computing system, the computer-implemented methodcomprising: receiving information strings identifying information to bereplicated from the source system; assigning the information strings toserialization groups for processing; arranging interdependentinformation strings into a specific serialization group and identifyingwhich serialization group each interdependent information stringbelongs, wherein information strings having members that have a databasetype relationship with other members are grouped together into a set sothat the members are updated in the correct sequence in the same targetsystem, where the database type relationship is one that relies onsequential processing of associated members for database information tobe correctly replicated, and wherein each set is processed in one of aplurality of serialization groups such that the members within a set areprocessed in sequence; determining if received information strings areinterdependent by looking up related processing information including alink to control structures for an object in the serialization group forthe information strings from a storage module, where the relatedprocessing information a) identifies whether the information strings areto be processed with other information strings and b) identifies inwhich serialization group interdependent information strings are to beprocessed, and, if it is determined that the information strings areinterdependent, assigning the information strings to the identifiedserialization group; and processing the serialization groups in parallelto replicate the information from the source such that members withindifferent sets can be processed out of sequence, wherein the processingincludes retrieving interdependent information strings that are assignedto the specific serialization group, and applying all interdependentinformation strings to that specific serialization group in correctchronological order.
 13. A computer configured to replicate informationfrom a source device, the computer comprising: a controller incommunication with a database, the controller configured to: receiveinformation strings identifying information to be replicated from asource device; assign the information strings to serialization groupsfor processing; arrange interdependent information strings into aspecific serialization group and identifying which serialization groupeach interdependent information string belongs, wherein the informationstrings include members that have a database type relationship withother members and are grouped together into a set so that the membersare arranged to be updated in a correct sequence in the same targetsystem, where the database type relationship is one that relies onsequential processing of associated members for database information tobe correctly replicated, and wherein each set is processed in one of aplurality of serialization groups such that the members within a set areprocessed in sequence; determine if received information strings areinterdependent by looking up related processing information including alink to control structures for an object in the serialization group forthe information strings from a storage module, where the relatedprocessing information a) identifies whether the information strings areto be processed with other information strings and b) identifies inwhich serialization group interdependent information strings are to beprocessed, and, if it is determined that the information strings areinterdependent, assign the information strings to the identifiedserialization group; and process serialization groups in parallel toreplicate the information from the source device such that memberswithin different sets can be processed out of sequence, wherein thecontroller is further configured to process by retrieving interdependentinformation strings that are assigned to the specific serializationgroup, and applying all interdependent information strings assigned tothat specific serialization group in correct chronological order.
 14. Acomputer-implemented method of replicating information from a sourcesystem at a target system in a database replication computing systemperformed by executing instructions on the computing system, thecomputer-implemented method comprising: i) receiving information stringsfrom the source system; ii) assigning the information strings toserialization groups for processing; iii) arranging interdependentinformation strings into a specific serialization group and identifyingwhich serialization group each interdependent information stringbelongs, wherein information strings having members that have a databasetype relationship with other members are grouped together to ensure theyare updated in the correct sequence in the same target system, andwherein each group of interdependent information strings is processed inone of a plurality of serialization groups; and iv) determining ifreceived information strings are interdependent by looking up relatedprocessing information including a link to control structures for anobject in the serialization group for the information strings from astorage module, where the related processing information a) identifieswhether the information strings are to be processed with otherinformation strings and b) identifies in which serialization groupinterdependent information strings are to be processed, and, if it isdetermined that the information strings are interdependent, assigningthe information strings to the identified serialization group; and v)processing the serialization groups in parallel to replicate theinformation from the source system, wherein processing of interdependentinformation strings in sequence is conducted in each serialization groupwithout regard to the processing of interdependent information stringswithin another serialization group, wherein the processing includesretrieving interdependent information strings that are assigned to thespecific serialization group, and applying all interdependentinformation strings assigned to that specific serialization group incorrect chronological order.
 15. A computer configured to replicateinformation from a source device, the computer comprising: a controllerin communication with a database, the controller configured to receiveinformation strings identifying information to be replicated from asource device; assign the information strings to serialization groupsfor processing; arrange interdependent information strings into aspecific serialization group and identifying which serialization groupeach interdependent information string belongs, wherein the informationstrings include members that have a database type relationship withother members and are grouped together into a set so that the membersare arranged to be updated in a correct sequence in the same targetsystem, where the database type relationship is one that relies onsequential processing of associated members for database information tobe correctly replicated, and wherein each set is processed in one of aplurality of serialization groups such that the members within a set areprocessed in sequence; determine if received information strings areinterdependent by looking up related processing information including alink to control structures for an object in the serialization group forthe information strings from a storage module, where the relatedprocessing information a) identifies whether the information strings areto be processed with other information strings and b) identifies inwhich serialization group interdependent information strings are to beprocessed, and, if it is determined that the information strings areinterdependent, assign the information strings to the identifiedserialization group; and process the serialization groups in parallel toreplicate the information from the source device such that memberswithin different sets can be processed out of sequence, wherein thecontroller is further configured to process the interdependentinformation strings in sequence in each serialization group withoutregard to the processing of interdependent information strings withinanother serialization group, retrieve interdependent information stringsthat are assigned to the specific serialization group, and apply all theinterdependent information strings assigned to that specificserialization group in correct chronological order.
 16. A method ofreplicating information from a source system at a target system in adatabase replication computing system performed by executinginstructions on the computing system, the method comprising: i)receiving information strings from the source system; ii) assigning theinformation strings to serialization groups for processing; iii)arranging interdependent information strings into a specificserialization group and identifying which serialization group eachinterdependent information string belongs, wherein information stringshaving members that have a database type relationship with other membersare grouped together to ensure they are updated in the correct sequencein the same target system, wherein the database type relationshipbetween members relates the members to the same target system beingreplicated, enables different actions to be performed on the same memberand relies on sequential processing of associated members for databaseinformation to be correctly replicated, wherein each group ofinterdependent information strings is processed in one of a plurality ofserialization groups; and iv) determining if received informationstrings are interdependent by looking up related processing informationincluding a link to control structures for an object in theserialization group for the information strings from a storage module,where the related processing information a) identifies whether theinformation strings are to be processed with other information stringsand b) identifies in which serialization group interdependentinformation strings are to be processed, and, if it is determined thatthe information strings are interdependent, assigning the informationstrings to the identified serialization group; and v) processing theserialization groups in parallel to replicate the information from thesource system, wherein the processing includes retrieving interdependentinformation strings that are assigned to the specific serializationgroup, and applying all interdependent information strings assigned tothat specific serialization group in correct chronological order.
 17. Acomputer configured to replicate information from a source device, thecomputer comprising: a controller in communication with a database, thecontroller configured to receive information strings identifyinginformation to be replicated from a source device; assign theinformation strings to serialization groups for processing; arrangeinterdependent information strings into a specific serialization groupand identifying which serialization group each interdependentinformation string belongs, wherein the information strings includemembers that have a database type relationship with other members andare grouped together into a set so that the members are arranged to beupdated in a correct sequence in the same target system, wherein thedatabase type relationship between members relates the members to thesame target system being replicated, enables different actions to beperformed on the same member and relies on sequential processing ofassociated members for database information to be correctly replicated,and wherein each set is processed in one of a plurality of serializationgroups such that the members within a set are processed in sequence;determine if received information strings are interdependent by lookingup related processing information including a link to control structuresfor an object in the serialization group for the information stringsfrom a storage module, where the related processing information a)identifies whether the information strings are to be processed withother information strings and b) identifies in which serialization groupinterdependent information strings are to be processed, and, if it isdetermined that the information strings are interdependent, assign theinformation strings to the identified serialization group; and processthe serialization groups in parallel to replicate the information fromthe source device such that members within different sets can beprocessed out of sequence, wherein the controller is further configuredto process the serialization groups by retrieving interdependentinformation strings that are assigned to the specific serializationgroup, and applying all interdependent information strings assigned tothat specific serialization group in correct chronological order.
 18. Amethod of replicating information from a source system at a targetsystem in a database replication computing system performed by executinginstructions on the computing system, the method comprising: i)receiving information strings from the source system; ii) assigning theinformation strings to serialization groups for processing; iii)arranging interdependent information strings into a specificserialization group and identifying which serialization group eachinterdependent information string belongs, wherein information stringshaving members that have a database type relationship with other membersare grouped together to ensure they are updated in the correct sequencein the same target system, wherein the database type relationshipbetween members relates the members to the same target system beingreplicated, enables different actions to be performed on the same memberand relies on sequential processing of associated members for databaseinformation to be correctly replicated, and wherein each group ofinterdependent information strings is processed in one of a plurality ofserialization groups; and iv) determining if received informationstrings are interdependent by looking up related processing informationincluding a link to control structures for an object in theserialization group for the information strings from a storage module,where the related processing information a) identifies whether theinformation strings are to be processed with other information stringsand b) identifies in which serialization group interdependentinformation strings are to be processed, and, if it is determined thatthe information strings are interdependent, assigning the informationstrings to the identified serialization group; and v) processing theserialization groups in parallel to replicate the information from thesource system, wherein processing of interdependent information stringsin sequence is conducted in each serialization group without regard tothe processing of interdependent information strings within anotherserialization group, wherein the processing includes retrievinginterdependent information strings that are assigned to the specificserialization group, and applying all interdependent information stringsassigned to that specific serialization group in correct chronologicalorder.
 19. A computer configured to replicate information from a sourcedevice, the computer comprising: a controller in communication with adatabase, the controller configured to receive information stringsidentifying information to be replicated from a source device; assignthe information strings to serialization groups for processing; arrangeinterdependent information stings into a specific serialization groupand identifying which serialization group each interdependentinformation string belongs, wherein the information strings includemembers that have a database type relationship with other members andare grouped together into a set so that the members are arranged to beupdated in a correct sequence in the same target system, wherein thedatabase type relationship between members relates the members to thesame target system being replicated, enables different actions to beperformed on the same member and relies on sequential processing ofassociated members for database information to be correctly replicated,and wherein each set is processed in one of a plurality of serializationgroups such that the members within a set are processed in sequence;determine if received information strings are interdependent by lookingup related processing information including a link to control structuresfor an object in the serialization group for the information stringsfrom a storage module, where the related processing information a)identifies whether the information strings are to be processed withother information strings and b) identifies in which serialization groupinterdependent information strings are to be processed, and, if it isdetermined that the information strings are interdependent, assign theinformation strings to the identified serialization group; and processthe serialization groups in parallel to replicate the information fromthe source device such that members within different sets can beprocessed out of sequence, wherein the controller is further configuredto process the interdependent information strings in sequence in eachserialization group without regard to the processing of interdependentinformation strings within another serialization group, retrieveinterdependent information strings that are assigned to the specificserialization group, and apply all the interdependent informationstrings assigned to that specific serialization group in correctchronological order.